package org.jsola.hr.helper;

import org.jsola.common.ClassKit;
import org.jsola.common.SafeKit;
import org.jsola.hr.dto.SalaryBillSendRelAddDTO;
import org.jsola.hr.dto.SalaryBillSendRelUpdateDTO;
import org.jsola.hr.entity.SalaryBillSendRelDO;
import org.jsola.hr.query.SalaryBillSendRelQuery;
import org.jsola.hr.service.ISalaryBillSendRelService;
import org.jsola.hr.vo.SalaryBillSendRelVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;

import java.util.Date;
import java.util.List;

import static org.jsola.hr.core.AbstractTest.SITE_ID;



/**
 * 工资条发放信息关联
 *
 * @author zhr
 */
@Component
public class SalaryBillSendRelTestHelper extends BaseTestHelper {
    
    @Autowired
    private ISalaryBillSendRelService salaryBillSendRelService;

    /**
     * 生成add测试数据
     * @return SalaryBillSendRelAddDTO
     */
    public SalaryBillSendRelAddDTO getSalaryBillSendRelAddDTO(){
        SalaryBillSendRelAddDTO salaryBillSendRelAddDTO = new SalaryBillSendRelAddDTO();
        salaryBillSendRelAddDTO.setSendId(getRandomValue("varchar",32));
        salaryBillSendRelAddDTO.setBillId(getRandomValue("varchar",32));
        salaryBillSendRelAddDTO.setSendStatus(SafeKit.getBoolean(getRandomValue("tinyint",1)));
        salaryBillSendRelAddDTO.setReadStatus(SafeKit.getBoolean(getRandomValue("tinyint",1)));
        salaryBillSendRelAddDTO.setCheckStatus(SafeKit.getBoolean(getRandomValue("tinyint",1)));
        salaryBillSendRelAddDTO.setWithdrawStatus(SafeKit.getBoolean(getRandomValue("tinyint",1)));
        salaryBillSendRelAddDTO.setAutoCheckTime((Date)ClassKit.getObjectValue(getRandomValue("datetime",0),"java.util.Date"));
        return salaryBillSendRelAddDTO;
    }


    /**
     * 生成update测试数据
     * @return SalaryBillSendRelUpdateDTO
     */
    public SalaryBillSendRelUpdateDTO getSalaryBillSendRelUpdateDTO(SalaryBillSendRelVO salaryBillSendRelVO){
        return salaryBillSendRelService.selectDOById(salaryBillSendRelVO.getId(), SITE_ID).to(SalaryBillSendRelUpdateDTO.class);
    }

    /**
     * 生成查询数据
     * @return SalaryBillSendRelQuery
     */
    public SalaryBillSendRelQuery getSalaryBillSendRelQuery() {
        SalaryBillSendRelQuery salaryBillSendRelQuery = new SalaryBillSendRelQuery();
        List<SalaryBillSendRelDO> salaryBillSendRelDOList = salaryBillSendRelService.list(new SalaryBillSendRelDO(),SITE_ID);
        if (!CollectionUtils.isEmpty(salaryBillSendRelDOList)) {
            SalaryBillSendRelDO salaryBillSendRelDO = salaryBillSendRelDOList.get(0);
            salaryBillSendRelQuery = salaryBillSendRelDO.to(SalaryBillSendRelQuery.class);
        }
        return salaryBillSendRelQuery;
    }

    /**
     * 保存示例
     * @return SalaryBillSendRelVO
     */
    public SalaryBillSendRelVO saveSalaryBillSendRelExample(){
        SalaryBillSendRelAddDTO addDTO = this.getSalaryBillSendRelAddDTO();
        SalaryBillSendRelVO salaryBillSendRelVO = salaryBillSendRelService.save(addDTO,buildTokenUser());
        return salaryBillSendRelVO;
    }


}

